"""
元类metaclass

类的默认metaclass都是type

自定义metaclass，也继承自type
定义metaclass中的new方法，可以在创建 新类 ，使得 新类 自带一些东西（类属性）
亦可以为 类实例 增加属性

"""


class Human(type):
    @staticmethod
    def __new__(mcs, *args, **kwargs):
        print(args)
        new_class = super().__new__(mcs, *args)
        new_class.weight = 0
        # 有额外的关键字参数
        if kwargs:
            for k, v in kwargs.items():
                # 通过setattr设置类属性
                setattr(new_class, k, v)
        return new_class


class Man(object, metaclass=Human, name="男性", country="中国"):
    pass


print(Man.weight)
print(Man.name)
print(Man.country)


# 实例
